﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;

public partial class frmAdminMenu : cGlobal
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            CargarMenus(); 
            LoadItems();
        }

    }

    private void LoadItems()
    {
        try
        {

            DataSet ds;
            ds = objSeguridad.GetMenu(0);
            if (ds.Tables[0].Rows.Count > 0)
            {
                this.grdMenus.DataSource = ds.Tables[0];
                this.grdMenus.DataBind();
                this.grdMenus.Columns[0].Visible = false;
                this.grdMenus.Columns[1].Visible = false;
            }
            else
            {
                objJavaScript.jsAlert("No se encontraron menus creados.", Page);
            }
        }
        catch (Exception ex)
        {
        }

    }

    protected void btnNuevo_Click(object sender, ImageClickEventArgs e)
    {
        Limpiar();

    }

    protected void grdMenus_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridViewRow gvr = this.grdMenus.Rows[e.NewEditIndex];
        GridView grdMenus = (GridView)gvr.NamingContainer;
        this.hidMenu.Value = Server.HtmlDecode(gvr.Cells[0].Text);
        this.txtNombreMenu.Text = Server.HtmlDecode(gvr.Cells[2].Text);
        this.txtUrl.Text = Server.HtmlDecode(gvr.Cells[3].Text);
        this.txtObservaciones.Text = Server.HtmlDecode(gvr.Cells[4].Text);
        this.hidMenuNuevo.Value = "0";
        string  testPadre;
        testPadre = Server.HtmlDecode(gvr.Cells[1].Text);

        this.hidMenu.Value = grdMenus.DataKeys[gvr.RowIndex]["ID"].ToString();
        this.drpMenuPadre.SelectedValue = grdMenus.DataKeys[gvr.RowIndex]["IDPADRE"].ToString();

        if (testPadre == "0")
        {
            this.chkCabecera.Checked = true;
            this.drpMenuPadre.Enabled = false;
        }
        else
        {
            this.chkCabecera.Checked = false;
            this.drpMenuPadre.Enabled = true;
        }

    }

    protected void btnGuardar_Click(object sender, ImageClickEventArgs e)
    {

        Int16 Menu;
        Menu = Convert.ToInt16(this.hidMenuNuevo.Value);

        bool val;
        val = validar();
        try
        {

            if (val == true)
            {

                if (Menu == 1)
                {

                    objSeguridad.ActualizarMenu(0, Convert.ToInt16(this.drpMenuPadre.SelectedValue), this.txtNombreMenu.Text, this.txtObservaciones.Text, this.txtUrl.Text);


                    objJavaScript.jsAlert("Se creo correctamente el nuevo item de menú. ", Page);

                    
                    CargarMenus(); 
                    LoadItems(); 

                }
                else
                {
                    Int16 IdMenu;
                    IdMenu = Convert.ToInt16(this.hidMenu.Value);


                    objSeguridad.ActualizarMenu(IdMenu, Convert.ToInt16(this.drpMenuPadre.SelectedValue), this.txtNombreMenu.Text, this.txtObservaciones.Text, this.txtUrl.Text);
                    CargarMenus(); 
                    LoadItems(); 
                    objJavaScript.jsAlert("Se actualizo correctamente la del item de menú.", Page);
                }


            }
        }
        catch (Exception ex)
        {
            objJavaScript.jsAlert("Ocurrió un error al guardar.", Page);
        }
        Limpiar();

    }

    private bool validar()
    {

        if (string.IsNullOrEmpty(this.txtNombreMenu.Text))
        {
            objJavaScript.jsAlert("Es necesario ingresar el nombre item de menú.", Page);
            this.txtNombreMenu.Focus();
            return false;
        }

 


        if (this.chkCabecera.Checked == false)
        { 
  
           if (string.IsNullOrEmpty(this.txtUrl.Text))
            {
                objJavaScript.jsAlert("Es necesario ingresar la URL de el nuevo nombre item de menú.", Page);
                this.txtUrl.Focus();
                return false;
            }

            if (Convert.ToInt16(this.drpMenuPadre.SelectedValue) == 0)
            {
                objJavaScript.jsAlert("Es necesario seleccionar el menua padre al cual pertenece el menu.", Page);
                this.drpMenuPadre.Focus();
                return false;
            }
        }

        return true;
    }


    private void Limpiar()
    {
        this.txtNombreMenu.Text = "";
        this.txtUrl.Text = "";
        this.txtObservaciones.Text = "";
        this.hidMenuNuevo.Value = "1";
        this.chkCabecera.Checked = false;
        this.drpMenuPadre.Enabled = true;   
    }
    private void CargarMenus()
    {
        try
        {
            DataSet dts = objSeguridad.GetMenusPadres(0);  
            if (dts.Tables[0].Rows.Count > 0)
            {
                this.drpMenuPadre.DataSource = dts.Tables[0];
                this.drpMenuPadre.DataValueField = dts.Tables[0].Columns[0].ColumnName;
                this.drpMenuPadre.DataTextField = dts.Tables[0].Columns[1].ColumnName;
            }
            else
                this.drpMenuPadre.DataSource = null;

            this.drpMenuPadre.DataBind();
            this.drpMenuPadre.Items.Insert(0, new ListItem("Seleccione...", "0"));
        }
        catch (Exception ex)
        {
            // Page.ClientScript.RegisterStartupScript(this.GetType(), "JS", "<script language='javascript'> alert('No se pudieron cargar las transportadoras: " + Utilidades.FormatearMensajeError(ex.Message) + "'); </Script>");
        }
    }

    protected void chkCabecera_CheckedChanged(object sender, EventArgs e)
    {
        bool test;
        test = this.chkCabecera.Checked;

        if (test == true)
        {
            this.drpMenuPadre.SelectedValue = "0";
            this.drpMenuPadre.Enabled = false;              
        }
        else
        {
            this.drpMenuPadre.Enabled = true;
        }
  
    }
}
